Networking and communication can have a significant impact on the overall performance of a computer system. As computers have become increasingly interconnected to other computers, e.g., over private networks as well as public networks such as the Internet, often the costs associated with accessing remote resources over a network have a greater impact on overall system performance than those associated with processing and accessing local memory.
Many networks, e.g., Ethernet-based networks such as local-area networks (LAN's), wide-area networks (WAN's), wireless local-area networks (WLAN's), etc., have traditionally been used primarily to allow computers to communicate with other computers, such as web servers, file servers, database servers, and peer or client computers, as well as to access remote resources such as printers, increasingly these types of networks are also being used to access other types of resources, such as external storage devices. For example, some Ethernet-based networks can be configured to operate as storage-area networks (SAN's) to permit computers to access storage devices in much the same manner as local storage devices. Unlike file servers or network attached storage (NAS) devices, which access data at the file level, SAN devices are typically accessed at the block level, e.g., in the same manner as a local hard drive. Various types of SAN-based protocols have been developed, including, for example, Fibre Channel, iSCSI (which maps the SCSI protocol over TCP/IP), HyperSCSI (which maps the SCSI protocol over Ethernet) and ATA over Ethernet.
Computers typically communicate with a network over a physical network interface. A physical network interface provides a physical port to which a single network cable can be connected to connect the interface to the network, or in the case of a wireless interface, over which a single wireless connection can be maintained. In many instances, a physical network interface is implemented within a physical network adapter, provided either on the motherboard of the computer, or more typically, provided on a card or a USB device. In some instances, a physical network adapter can include multiple physical network interfaces, and furthermore, in some computers, multiple physical network adapters and/or multiple physical network interfaces may be provided, either to couple to the same network or to couple to different networks. By doing so, communication performance is often improved due to the ability to concurrently communicate data over multiple interfaces. In addition, reliability is often improved due to the ability to switch over to another physical network interface should one physical network interface fail or otherwise lose connectivity to the network.
With the addition of SAN's and other types of data traffic to networks, a physical network interface may be called upon to communicate a wide variety of data for different purposes. For example, data streams from LAN applications may be required to coexist with iSCSI data streams. When LAN application and iSCSI data streams coexist over the same physical network interface, however, there is the possibility of bandwidth contention between LAN traffic and iSCSI traffic. While bandwidth contention may simply slow the performance of some computers, in other computers, bandwidth contention can lead to unreliability and even system failures.
For example, some computers are implemented as “diskless” computers where no hard drive is resident within the computer itself. Instead, the data that is more traditionally stored locally on a hard drive is instead stored on a SAN-accessible device, and accessed using a SAN-compatible protocol such as iSCSI. The iSCSI data traffic therefore includes traffic to maintain critical storage such as the system volume, i.e., the disk volume where the operating system is located and typically where disk paging operations occur.
This type of data traffic, which is referred to herein as “operating system critical storage operations,” can have a significant impact not only on the performance of the computer, but can also raise reliability concerns for the operating system. When operating system critical storage operations, however, are communicated over the same physical network interface as other data traffic such as LAN traffic, bandwidth contention can result. A risk exists that if there is too much LAN traffic at a given point in time, it may starve out some storage operations and cause poor performance, or in the worst case, may cause an operating system crash.
Therefore, a significant need exists in the art for a manner of minimizing bandwidth contention issues arising between operating system critical storage operations and other types of data traffic being communicated over a common physical network interface.